<?php

/**
 * Search
 * 
 * Модель для работы с поиском
 * 
 * @package   Basic
 * @author    Игорь Будасов aka Lord <igor.budasov@gmail.com> 
 * @copyright Игорь Будасов aka Lord <igor.budasov@gmail.com> 
 */
 
class Search extends Zend_Db_Table_Abstract
{
	
/*------------------------------------------------------------------------------*/
	
	// имя таблицы, с которой будет работать Zend_Db_Table
	protected $_name = 'search_cache';
		
/*------------------------------------------------------------------------------*/

    /**
    * Функиця для получения результатов поиска
    * 
    * @param string $query
    */

    public function getSearch($query)
    {
        // основа запроса
        $query = $this->select()
                    ->setIntegrityCheck(false)
                    ->from('search_cache')
                    ->where('text LIKE "%' . $query . '%"')
                    ;
                     
        // возвращаем результат
        return  $this->fetchAll($query);        
    }

/*------------------------------------------------------------------------------*/

    /**
    * Достает все записи из указаной таблицы
    *     
    * @param string $table
    * @return Zend_Db_Table_Rowset_Abstract
    */
    
    public function getTableRows($table, $fields)
    {   
        $this->_setTable($table); 
        // основа запроса
        $query = $this->select()
                    ->setIntegrityCheck(false)
                    ->from($table, $fields)
                    ;
                    
        // возвращаем результат
        return  $this->fetchAll($query);
    }
    
/*------------------------------------------------------------------------------*/

    /**
    * Добавление записи кэша
    * 
    * @param array $data
    * @return int
    */

    public function addCacheRecord($data = array())
    {
        // установим имя таблицы на всякий случай
        $this->_setTable('search_cache');
        // добавляем 
        return $this->insert($data);
    }

/*------------------------------------------------------------------------------*/

    /**
    * Метод для очистки баблицы поискового кэша
    */

    public function clearCache()
    {
        $this->_setTable('search_cache');
        
        return $this->delete('');
    }

/*==============================================================================*/

	/**
	* Приватный метод для смены имени таблицы
	* 
	* @param string $table
	*/

	private function _setTable($table)
	{
		$this->_name = $table;
		return;
	}

/*------------------------------------------------------------------------------*/

}